package com.car.controller.safeuse;

import com.car.entity.SafeUse;
import com.car.entity.User;
import com.car.service.safeuse.SafeUseService;
import com.car.util.PageUtil;
import com.car.util.ResultMsg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
public class SafeUseController {

    @Autowired
    private SafeUseService safeUseService;

    @RequestMapping("toSafeUseList")
    public ModelAndView toSafeUseList(){
        ModelAndView mv = new ModelAndView("safeuse-list");
        return mv;
    }

    @RequestMapping("/getSafeUseList")
    //转为json数据
    @ResponseBody
    public Map getAllSafeUse(int pageNum, int pageSize, SafeUse safeUse, User u){
        //创建用于返回和查询的map
        Map<String,Object> paramsMap = new HashMap<>();
        safeUse.setUser(u);
        //先将查询条件封装到repair对象内
        paramsMap.put("safeUse",safeUse);
        //查询记录条数（符合模糊搜索的条件）
        int count =  safeUseService.getSafeUseCountQuery(paramsMap);
        //将记录总条数添加到map中
        paramsMap.put("count",count);
        //通过总记录条数和每页大小算出总页数
        int total = PageUtil.getTotalPage(count,pageSize);
        //将总页数添加到map中
        paramsMap.put("total",total);
        //通过页码和条数算出本次分页的起始位置
        int selectStart = pageSize*(pageNum-1);
        //将起始位置封装到map中，方便后续dao层调用
        paramsMap.put("selectStart",selectStart);
        //将每页记录条数封装到map中，方便后续dao层调用
        paramsMap.put("pageSize",pageSize);
        //通过map包含的条件 查询符合的repair组成一个List返回
        //条件包括： repair.carIdCard  repair.user.userName  模糊搜索  和  分页
        List<SafeUse> safeUseList = safeUseService.getAllSafeUseQuery(paramsMap);
        //最后将结果也封装到map中，并返回
        paramsMap.put("safeUseList",safeUseList);
        return paramsMap;
    }

    @ResponseBody
    @RequestMapping("/toAddSafeUse")
    public ModelAndView toAddSafeUse(){
        return new ModelAndView("safeuse-add");
    }

    @ResponseBody
    @RequestMapping("/addSafeUse")
    public ResultMsg addSafeUse(SafeUse safeUse, User user){
        ResultMsg resultMsg = new ResultMsg();
        safeUse.setUser(user);

        int flag =  safeUseService.addSafeUseInsert(safeUse);
        resultMsg.setFlag(flag);

        return resultMsg;
    }

    @ResponseBody
    @RequestMapping("/toEditSafeUse")
    public ModelAndView toEditRepair(SafeUse s){
        ModelAndView mv = new ModelAndView("safeuse-edit");
        SafeUse safeUse = safeUseService.getSafeUseByIdQuery(s);
        mv.addObject("safeUse",safeUse);
        return mv;
    }

    @ResponseBody
    @RequestMapping("/editSafeUse")
    public ResultMsg editRepair(SafeUse safeUse,User user){
        ResultMsg resultMsg = new ResultMsg();
        safeUse.setUser(user);
        int flag =  safeUseService.editSafeUseUpdate(safeUse);
        resultMsg.setFlag(flag);
        return resultMsg;
    }


    @ResponseBody
    @RequestMapping("/delSafeUse")
    public String delRepair(SafeUse safeUse){
        int flag =  safeUseService.delSafeUseDelete(safeUse);
        return String.valueOf(flag);
    }


}
